package com.ruoyi.system.domain;

import jakarta.validation.constraints.NotBlank;
import jakarta.validation.constraints.NotNull;
import jakarta.validation.constraints.Size;
import org.apache.commons.lang3.builder.ToStringBuilder;
import org.apache.commons.lang3.builder.ToStringStyle;
import com.ruoyi.common.annotation.Excel;
import com.ruoyi.common.annotation.Excel.ColumnType;
import com.ruoyi.common.core.domain.BaseEntity;

/**
 * MBTI测试结果对象 mbti_result
 * 
 * @author ruoyi
 * @date 2025-01-21
 */
public class MbtiResult extends BaseEntity
{
    private static final long serialVersionUID = 1L;

    /** 结果ID */
    @Excel(name = "结果ID", cellType = ColumnType.NUMERIC)
    private Long resultId;

    /** 测试记录ID */
    @Excel(name = "测试记录ID", cellType = ColumnType.NUMERIC)
    @NotNull(message = "测试记录ID不能为空")
    private Long recordId;

    /** 人格类型(如INTJ) */
    @Excel(name = "人格类型")
    @NotBlank(message = "人格类型不能为空")
    @Size(min = 0, max = 10, message = "人格类型不能超过10个字符")
    private String personalityType;

    /** E维度得分 */
    @Excel(name = "E维度得分", cellType = ColumnType.NUMERIC)
    @NotNull(message = "E维度得分不能为空")
    private Integer eScore;

    /** I维度得分 */
    @Excel(name = "I维度得分", cellType = ColumnType.NUMERIC)
    @NotNull(message = "I维度得分不能为空")
    private Integer iScore;

    /** S维度得分 */
    @Excel(name = "S维度得分", cellType = ColumnType.NUMERIC)
    @NotNull(message = "S维度得分不能为空")
    private Integer sScore;

    /** N维度得分 */
    @Excel(name = "N维度得分", cellType = ColumnType.NUMERIC)
    @NotNull(message = "N维度得分不能为空")
    private Integer nScore;

    /** T维度得分 */
    @Excel(name = "T维度得分", cellType = ColumnType.NUMERIC)
    @NotNull(message = "T维度得分不能为空")
    private Integer tScore;

    /** F维度得分 */
    @Excel(name = "F维度得分", cellType = ColumnType.NUMERIC)
    @NotNull(message = "F维度得分不能为空")
    private Integer fScore;

    /** J维度得分 */
    @Excel(name = "J维度得分", cellType = ColumnType.NUMERIC)
    @NotNull(message = "J维度得分不能为空")
    private Integer jScore;

    /** P维度得分 */
    @Excel(name = "P维度得分", cellType = ColumnType.NUMERIC)
    @NotNull(message = "P维度得分不能为空")
    private Integer pScore;

    /** 结果描述 */
    @Excel(name = "结果描述")
    private String resultDescription;

    public void setResultId(Long resultId) 
    {
        this.resultId = resultId;
    }

    public Long getResultId() 
    {
        return resultId;
    }

    public void setRecordId(Long recordId) 
    {
        this.recordId = recordId;
    }

    public Long getRecordId() 
    {
        return recordId;
    }

    public void setPersonalityType(String personalityType) 
    {
        this.personalityType = personalityType;
    }

    public String getPersonalityType() 
    {
        return personalityType;
    }

    public void setEScore(Integer eScore) 
    {
        this.eScore = eScore;
    }

    public Integer getEScore() 
    {
        return eScore;
    }

    public void setIScore(Integer iScore) 
    {
        this.iScore = iScore;
    }

    public Integer getIScore() 
    {
        return iScore;
    }

    public void setSScore(Integer sScore) 
    {
        this.sScore = sScore;
    }

    public Integer getSScore() 
    {
        return sScore;
    }

    public void setNScore(Integer nScore) 
    {
        this.nScore = nScore;
    }

    public Integer getNScore() 
    {
        return nScore;
    }

    public void setTScore(Integer tScore) 
    {
        this.tScore = tScore;
    }

    public Integer getTScore() 
    {
        return tScore;
    }

    public void setFScore(Integer fScore) 
    {
        this.fScore = fScore;
    }

    public Integer getFScore() 
    {
        return fScore;
    }

    public void setJScore(Integer jScore) 
    {
        this.jScore = jScore;
    }

    public Integer getJScore() 
    {
        return jScore;
    }

    public void setPScore(Integer pScore) 
    {
        this.pScore = pScore;
    }

    public Integer getPScore() 
    {
        return pScore;
    }

    public void setResultDescription(String resultDescription) 
    {
        this.resultDescription = resultDescription;
    }

    public String getResultDescription() 
    {
        return resultDescription;
    }

    @Override
    public String toString() {
        return new ToStringBuilder(this,ToStringStyle.MULTI_LINE_STYLE)
            .append("resultId", getResultId())
            .append("recordId", getRecordId())
            .append("personalityType", getPersonalityType())
            .append("eScore", getEScore())
            .append("iScore", getIScore())
            .append("sScore", getSScore())
            .append("nScore", getNScore())
            .append("tScore", getTScore())
            .append("fScore", getFScore())
            .append("jScore", getJScore())
            .append("pScore", getPScore())
            .append("resultDescription", getResultDescription())
            .append("createTime", getCreateTime())
            .toString();
    }
}
